import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Form/index';

export const typeList: any = [
  {
    label: '缺省',
    value: 0,
  },
  {
    label: '开始步骤',
    value: 1,
  },
  {
    label: '其他权限',
    value: 2,
  },
];

const documentAccessList = [
  {
    label: '不可见',
    value: 0,
  },
  {
    label: '只读',
    value: 1,
  },
  {
    label: '可读写 (不可创建版本控制附件)',
    value: 2,
  },
  {
    label: '可读写 (可创建版本控制附件)，可删除',
    value: 3,
  },
  {
    label: '赋予附件最高权限',
    value: 4,
  },
];

export const commentAccessList: any = [
  {
    label: '不用填写意见',
    value: 0,
  },
  {
    label: '可以填写意见',
    value: 1,
  },
  {
    label: '必须填写意见',
    value: 2,
  },
];
export const rightColumns: BasicColumn[] = [
  {
    title: '权限名称',
    dataIndex: 'rightName',
  },
  {
    title: '类型',
    dataIndex: 'rightType',
    customRender: ({ record }) => {
      return typeList[record.rightType]?.label;
    },
  },
  {
    title: '正文权限',
    dataIndex: 'bodyAccess',
    ellipsis: true,

    customRender: ({ record }) => {
      return documentAccessList[record.bodyAccess]?.label;
    },
  },
  {
    title: '附件权限',
    ellipsis: true,

    dataIndex: 'documentAccess',
    customRender: ({ record }) => {
      return documentAccessList[record.documentAccess]?.label;
    },
  },
  {
    title: '意见填写权限',
    dataIndex: 'commentAccess',
    customRender: ({ record }) => {
      return commentAccessList[record.commentAccess].label;
    },
  },
  {
    title: '流程监控权限',
    dataIndex: 'flowAccess',
    customRender: ({ record }) => {
      return documentAccessList[record.flowAccess].label;
    },
  },
  {
    title: '标识',
    dataIndex: 'rightId',
  },
];

export const rightSchemas: FormSchema[] = [
  {
    field: 'rightName',
    component: 'Input',
    label: `权限名称`,
    required: true,
    colProps: {
      span: 12,
    },
  },
  {
    field: 'rightType',
    component: 'Select',
    label: `类型`,
    required: true,

    colProps: {
      span: 12,
    },
    componentProps: {
      options: typeList,
    },
  },
  {
    field: 'bodyAccess',
    component: 'Select',
    label: `正文权限`,
    required: true,

    colProps: {
      span: 12,
    },
    componentProps: {
      options: documentAccessList,
    },
  },
  {
    field: 'documentAccess',
    component: 'Select',
    required: true,

    label: `附件权限`,
    colProps: {
      span: 12,
    },
    componentProps: {
      options: documentAccessList,
    },
  },
  {
    field: 'commentAccess',
    component: 'Select',
    label: `意见填写权限`,
    required: true,

    colProps: {
      span: 12,
    },
    componentProps: {
      options: commentAccessList,
    },
  },
  {
    field: 'flowAccess',
    component: 'Select',
    label: `流程监控权限`,
    required: true,

    colProps: {
      span: 12,
    },
    componentProps: {
      options: documentAccessList,
    },
  },
];

export const field = {
  bodyAccess: 2,
  commentAccess: 0,
  documentAccess: 2,
  flowAccess: 1,
  rightId: 1,
  rightName: '',
  rightType: 0,
  scripts: null,
};

export const funList = [
  {
    label: '打开计算',
    type: 0,
    value: '',
    remark: '针对所有参与人员在只读情况下[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '打开计算',
    type: 1,
    value: '',
    remark: '针对所有参与人员在公文操作情况下[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '打开前计算',
    type: 2,
    value: '',
    remark: '针对第一个参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '保存前计算',
    type: 3,
    value: '',
    remark: '针对所有参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '保存后计算',
    type: 4,
    value: '',
    remark: '针对所有参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '保存前计算',
    type: 5,
    value: '',
    remark: '针对第一个参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '保存后计算',
    type: 6,
    value: '',
    remark: '针对第一个参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '发送前计算',
    type: 7,
    value: '',
    remark: '针对所有参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '发送后计算',
    type: 8,
    value: '',
    remark: '针对所有参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '发送前计算',
    type: 9,
    value: '',
    remark: '针对第一个参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '发送后计算',
    type: 10,
    value: '',
    remark: '针对第一个参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '公文流转结束后计算',
    type: 11,
    value: '',
    remark: '[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '数据更新后计算',
    type: 12,
    value: '',
    remark: '[后台计算、请不要在函数中出现Msgbox等语句]',
  },
  {
    label: '打开时计算',
    type: 13,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '发送时计算',
    type: 14,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '保存时计算',
    type: 15,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '关闭时计算',
    type: 16,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '只读打开时计算',
    type: 17,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '只读关闭时计算',
    type: 18,
    value: '',
    remark: '定义客户端的Script[VBScript或JavaScript]操作内容',
  },
  {
    label: '撤回时计算',
    type: 19,
    value: '',
    remark: '针对所有参与人员[后台计算、请不要在函数中出现Msgbox等语句]',
  },
];
